#!/bin/bash

# Flutter Pub Get 双击执行脚本
# 作用：获取 Flutter 项目的所有依赖包

echo "📦 开始获取 Flutter 依赖包..."
echo "======================================"

# 获取脚本所在目录（项目根目录）
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"

echo "📁 当前目录: $(pwd)"
echo "⏰ 开始时间: $(date)"

# 检查是否为 Flutter 项目
if [ ! -f "pubspec.yaml" ]; then
    echo "❌ 错误：当前目录不是 Flutter 项目！"
    echo "请确保脚本位于 Flutter 项目根目录。"
    read -p "按任意键退出..." -n1 -s
    exit 1
fi

echo "✅ 检测到 Flutter 项目"

# 显示 pubspec.yaml 基本信息
if command -v grep >/dev/null 2>&1; then
    PROJECT_NAME=$(grep "^name:" pubspec.yaml | cut -d' ' -f2)
    PROJECT_VERSION=$(grep "^version:" pubspec.yaml | cut -d' ' -f2)
    echo "📄 项目名称: $PROJECT_NAME"
    echo "🏷️  项目版本: $PROJECT_VERSION"
fi

echo ""

# 执行 flutter pub get
echo "🔄 正在执行 flutter pub get..."
flutter pub get

# 检查命令执行结果
if [ $? -eq 0 ]; then
    echo ""
    echo "✅ 依赖包获取完成！"
    echo "📝 已完成操作："
    echo "   - 下载所有依赖包"
    echo "   - 更新 pubspec.lock"
    echo "   - 生成 .dart_tool/ 配置"
    echo ""
    
    # 显示依赖包统计信息
    if [ -f "pubspec.lock" ]; then
        DEPS_COUNT=$(grep -c "name:" pubspec.lock 2>/dev/null || echo "unknown")
        echo "📊 总依赖包数量: $DEPS_COUNT"
    fi
    
else
    echo ""
    echo "❌ 依赖包获取失败！"
    echo "可能的原因："
    echo "   - 网络连接问题"
    echo "   - pubspec.yaml 配置错误"
    echo "   - Flutter 环境未正确配置"
    echo ""
fi

echo "⏰ 完成时间: $(date)"
echo "======================================"
echo "💡 提示：如果遇到缓存问题，可以先运行 'flutter clean' 清理项目"

# 等待用户按键后关闭
echo ""
echo "按任意键关闭窗口..."
read -n1 -s
